package com.maxd.utils;

import com.maxd.error.DescribeException;
import com.maxd.error.ExceptionEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;

import java.util.Collection;

public class AssertUtil {

    public static void assertTrue(boolean b, Integer errorCode, String errorMsg) {
        if(!b) {
            throw new DescribeException(errorMsg, errorCode);
        }
    }

    public static void assertTrue(boolean b, ExceptionEnum em) {
        assertTrue(b, em.getCode(), em.getMsg());
    }

    public static void assertTrue(boolean b, ExceptionEnum em, String msg) {
        assertTrue(b, em.getCode(), msg);
    }

    public static void notNull(Object o, ExceptionEnum em) {
        assertTrue(o != null, em);
    }

    public static void notNull(Object o, ExceptionEnum em, String msg) {
        assertTrue(o != null, em.getCode(), msg);
    }

    public static void notEmpty(String s, ExceptionEnum em) {
        assertTrue(StringUtils.isNotEmpty(s), em);
    }

    public static void notEmpty(String s, ExceptionEnum em, String msg) {
        assertTrue(StringUtils.isNotEmpty(s), em.getCode(), msg);
    }

    public static void notEmpty(Collection c, ExceptionEnum em) {
        assertTrue(!CollectionUtils.isEmpty(c), em);
    }

    public static void notEmpty(Collection c, ExceptionEnum em, String msg) {
        assertTrue(!CollectionUtils.isEmpty(c), em.getCode(), msg);
    }

}
